using System.Collections.Generic;

namespace CppWrapper.Interfaces
{
  public delegate void ProgressHandler(int nProgressPercentage);
  public delegate bool AbortHandler();

  public interface IGenerator 
  {
    event ProgressHandler Progress;

    IList<ITypeInfo> GetTypesFromAssembly(string assemblyFilePath);
    IList<ITypeInfo> GetTypesFromAssembly(IAssemblyInfo info);
    void Generate(IList<ITypeInfo> typeInfos, AbortHandler cancellationRequested);
  }
}